import os from '@packages/lib-os';

// 执行App任务
const execAppJob = (exec) => {
    if (!os.wpt) {
        return;
    }
    if (window.wx) {
        exec();
    } else {
        $(document).on('wptLoadJs:success', exec);
    }
};

export { execAppJob };

export default {
    /**
     * 跳转到App指定页面
     * @exports WPT/appBridge/jump
     * @param {String} [url=''] 需要是以w.weipaitang.com开头的字符串
     * @param {Function} [callback=() => {}] 执行callback
     * @param {Object} [params={}] 传递参数
     */
    jump(url = '', callback = () => {}, params = {}) {
        if (window.wptJumpNativeWithUrl) {
            window.wptJumpNativeWithUrl(url, callback, params);
        }
    },
    /**
     * 打开支付宝付款
     * @exports WPT/appBridge/wptOpenAlipay
     * @param {String} url 路径
     */
    wptOpenAlipay: (url) => {
        if (WPT.os.ios) {
            // ios
            window &&
                window.webkit &&
                window.webkit.messageHandlers &&
                window.webkit.messageHandlers.wptOpenAlipay &&
                window.webkit.messageHandlers.wptOpenAlipay.postMessage &&
                window.webkit.messageHandlers.wptOpenAlipay.postMessage(url);
        } else {
            // android
            window && window.wxx && window.wxx.wptOpenAlipay && window.wxx.wptOpenAlipay(url);
        }
    },
    /**
     * 打开转账
     * @exports WPT/appBridge/wptOpenCMB
     * @param {String} url 路径
     */
    wptOpenCMB: (url) => {
        if (WPT.os.ios) {
            // ios
            window &&
                window.webkit &&
                window.webkit.messageHandlers &&
                window.webkit.messageHandlers.wptOpenCMB &&
                window.webkit.messageHandlers.wptOpenCMB.postMessage &&
                window.webkit.messageHandlers.wptOpenCMB.postMessage(url);
        } else {
            // android
            window && window.wxx && window.wxx.wptOpenCMB && window.wxx.wptOpenCMB(url);
        }
    },
    /**
     * 获取能打开的银行app列表
     * @exports WPT/appBridge/wptCheckBankInstalled
     * @param {Function} success 回调函数
     */
    wptCheckBankInstalled: (success) => {
        execAppJob(() => {
            window.wx &&
                window.wx.checkBankInstall &&
                window.wx.checkBankInstall({
                    key: 'banklist',
                    success,
                });
        });
    },
};
